home *** CD-ROM | disk | FTP | other *** search
/ The Fatted Calf / The Fatted Calf.iso / Applications / Graphics / NXPlot3d / Source / FontShape.m < prev    next >
Text File  |  1994-01-25  |  1KB  |  85 lines

  1. #import "Plot3DView.h"
  2. /* FontShape.h - Copyright 1994  Steve Ludtke  1/23/94*/
  3. /* This object allows rendering of simple ascii letters in */
  4. /* renderman views */
  5. #import "FontShape.h"
  6. #import <ri/ri.h>
  7. #import <math.h>
  8.  
  9. @implementation FontShape:N3DShape
  10. -init
  11. {
  12. [super init];
  13. ntext=0;
  14. return self;
  15. }
  16.  
  17. -free
  18. {
  19. [self remAllText];
  20. [super free];
  21. return self;
  22. }
  23.  
  24. - renderSelf:(RtToken)context
  25. {
  26. int i,j,k;
  27. float x,y,z;
  28. static RtPoint square[4]= {{-1.0,-1.0,-1.01},{1.0,-1.0,-1.01},{1.0,1.0,-1.01},{-1.0,1.0,-1.01}};
  29. static RtColor dCol = { 1.0,1.0,1.0 };
  30.  
  31. /*RiSurface("constant",RI_NULL);
  32. if (mode>=4) {
  33.     RiColor(bgCol);
  34.     RiPolygon(4,RI_P,(RtPointer)bsquare,RI_NULL);
  35. }
  36. RiRotate(theta-90.0,1.0,0,0);
  37. RiRotate(-chi,0,0,1.0);
  38. RiColor(bCol);
  39. if (flags&1) RiPolygon(4,RI_P,(RtPointer)square,RI_NULL);
  40. RiSurface("matte",RI_NULL);
  41. RiColor(dCol);*/
  42. return self;
  43. }
  44.  
  45. -(int)addText:(char *)txt :(RtPoint)v1 :(RtPoint)v2
  46. {
  47. text[ntext].text=malloc(strlen(txt)+1);
  48. strcpy(text[ntext].text,txt);
  49. text[ntext].v1[0]=v1[0];
  50. text[ntext].v1[1]=v1[1];
  51. text[ntext].v1[2]=v1[2];
  52. text[ntext].v2[0]=v2[0];
  53. text[ntext].v2[1]=v2[1];
  54. text[ntext].v2[2]=v2[2];
  55. ntext++;
  56. return self;
  57. }
  58.  
  59. -remText:(int)n
  60. {
  61. int i;
  62.  
  63. if (n<0||n>=ntext) return nil;
  64. free(text[n].text);
  65. ntext--;
  66. for (i=n; i<ntext; i++) text[i]=text[i+1];
  67. return self;
  68. }
  69.  
  70. -remAllText
  71. {
  72. int i;
  73.  
  74. for (i=0; i<ntext; i++) free(text[i].text);
  75. ntext=0;
  76. return self;
  77. }
  78.  
  79. -(int)nText
  80. {
  81. return ntext;
  82. }
  83. @end
  84.   
  85.